Remove old th06 universal training images - #978
Conversation
… images The old versioned directories (th06-cpu-torch210-py312, th06-cuda130-torch210-py312, th06-rocm64-torch291-py312) are superseded by the new simplified naming convention (th-torch-cpu-py312, th-torch-cuda-py312, th-torch-rocm-py312). Update README.md and ARCHITECTURE.md to reflect the new directory structure. Co-authored-by: Cursor <cursoragent@cursor.com>
📝 WalkthroughWalkthroughThe change replaces version-specific universal training image directory references with generic CPU, CUDA, and ROCm names using Python 3.12. It updates the architecture and training documentation naming conventions. The previous CPU, CUDA, and ROCm image build files, dependency manifests, repository configurations, licenses, and entrypoint scripts are deleted. Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 10✅ Passed checks (10 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@images/universal/training/README.md`:
- Around line 166-168: Resolve the Scenario 2 image-directory naming collision
around the CUDA, ROCm, and CPU paths in the training image documentation by
including the relevant dependency version in each directory name, or explicitly
define the stable-directory update contract with immutable tags, digests, and
rollback rules. Update ARCHITECTURE.md and all downstream build references to
consistently use the selected naming and rollback contract.
- Around line 36-43: Update the runtime-to-image mappings in the relevant
definitions in utils_runtimes.go to use the renamed th-torch-cuda-py312,
th-torch-rocm-py312, and th-torch-cpu-py312 image references instead of the
deleted th06-* names, preserving the existing CUDA, ROCm, and CPU runtime
associations.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Central YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: eb0b88de-b3c1-45f3-93d2-52864caded3c
📒 Files selected for processing (21)
ARCHITECTURE.mdimages/universal/training/README.mdimages/universal/training/th06-cpu-torch210-py312/Dockerfileimages/universal/training/th06-cpu-torch210-py312/LICENSE.mdimages/universal/training/th06-cpu-torch210-py312/entrypoint-universal.shimages/universal/training/th06-cpu-torch210-py312/pyproject.tomlimages/universal/training/th06-cpu-torch210-py312/requirements.txtimages/universal/training/th06-cuda130-torch210-py312/Dockerfileimages/universal/training/th06-cuda130-torch210-py312/LICENSE.mdimages/universal/training/th06-cuda130-torch210-py312/cuda.repoimages/universal/training/th06-cuda130-torch210-py312/entrypoint-universal.shimages/universal/training/th06-cuda130-torch210-py312/mellanox.repoimages/universal/training/th06-cuda130-torch210-py312/pyproject.tomlimages/universal/training/th06-cuda130-torch210-py312/requirements.txtimages/universal/training/th06-rocm64-torch291-py312/Dockerfileimages/universal/training/th06-rocm64-torch291-py312/LICENSE.mdimages/universal/training/th06-rocm64-torch291-py312/entrypoint-universal.shimages/universal/training/th06-rocm64-torch291-py312/mellanox.repoimages/universal/training/th06-rocm64-torch291-py312/pyproject.tomlimages/universal/training/th06-rocm64-torch291-py312/requirements.txtimages/universal/training/th06-rocm64-torch291-py312/rocm.repo
💤 Files with no reviewable changes (19)
- images/universal/training/th06-rocm64-torch291-py312/mellanox.repo
- images/universal/training/th06-cpu-torch210-py312/requirements.txt
- images/universal/training/th06-cuda130-torch210-py312/mellanox.repo
- images/universal/training/th06-cuda130-torch210-py312/requirements.txt
- images/universal/training/th06-cpu-torch210-py312/entrypoint-universal.sh
- images/universal/training/th06-cuda130-torch210-py312/cuda.repo
- images/universal/training/th06-cpu-torch210-py312/pyproject.toml
- images/universal/training/th06-cuda130-torch210-py312/pyproject.toml
- images/universal/training/th06-cpu-torch210-py312/LICENSE.md
- images/universal/training/th06-cuda130-torch210-py312/LICENSE.md
- images/universal/training/th06-rocm64-torch291-py312/LICENSE.md
- images/universal/training/th06-rocm64-torch291-py312/requirements.txt
- images/universal/training/th06-rocm64-torch291-py312/rocm.repo
- images/universal/training/th06-rocm64-torch291-py312/entrypoint-universal.sh
- images/universal/training/th06-rocm64-torch291-py312/pyproject.toml
- images/universal/training/th06-cuda130-torch210-py312/entrypoint-universal.sh
- images/universal/training/th06-rocm64-torch291-py312/Dockerfile
- images/universal/training/th06-cpu-torch210-py312/Dockerfile
- images/universal/training/th06-cuda130-torch210-py312/Dockerfile
| | **CUDA** | `th-torch-cuda-py312/` | NVIDIA GPU training | | ||
| | **ROCm** | `th-torch-rocm-py312/` | AMD GPU training | | ||
| | **CPU** | `th-torch-cpu-py312/` | CPU-only training | | ||
|
|
||
| All flavors include: | ||
| - **Training Hub** with LoRA support | ||
| - **PyTorch <VERSION>** | ||
| - **Python <VERSION>** | ||
| - **PyTorch** | ||
| - **Python 3.12** |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
new_dirs=(
images/universal/training/th-torch-cpu-py312
images/universal/training/th-torch-cuda-py312
images/universal/training/th-torch-rocm-py312
)
failed=0
for dir in "${new_dirs[@]}"; do
if [[ ! -d "$dir" ]]; then
echo "Missing new image directory: $dir" >&2
failed=1
fi
done
if rg -n --hidden --glob '!.git/**' \
'th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)' .; then
echo "Stale references to removed image directories found." >&2
failed=1
fi
exit "$failed"Repository: opendatahub-io/distributed-workloads
Length of output: 2165
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '--- new image directories ---\n'
for dir in images/universal/training/th-torch-cpu-py312 images/universal/training/th-torch-cuda-py312 images/universal/training/th-torch-rocm-py312; do
if [[ -d "$dir" ]]; then
echo "present: $dir"
else
echo "missing: $dir"
fi
done
printf '\n--- all deleted th06 training directory references ---\n'
rg -n --hidden --glob '!.git/**' \
'images/universal/training/(th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)|th-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312))' . || true
printf '\n--- all th06 runtime/image references ---\n'
rg -n --hidden --glob '!.git/**' \
'training-hub-th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)|odh-th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)|"th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)"' . || trueRepository: opendatahub-io/distributed-workloads
Length of output: 265
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '%s\n' '--- new image directories ---'
for dir in images/universal/training/th-torch-cpu-py312 images/universal/training/th-torch-cuda-py312 images/universal/training/th-torch-rocm-py312; do
if [[ -d "$dir" ]]; then
echo "present: $dir"
else
echo "missing: $dir"
fi
done
printf '%s\n' ''
printf '%s\n' '--- old image directory references ---'
rg -n --hidden --glob '!.git/**' \
'images/universal/training/(th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)|th-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312))' . || true
printf '%s\n' ''
printf '%s\n' '--- th06 runtime/image references ---'
rg -n --hidden --glob '!.git/**' \
'training-hub-th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)|odh-th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)|"th06-(cpu-torch210-py312|cuda130-torch210-py312|rocm64-torch291-py312)"' . || trueRepository: opendatahub-io/distributed-workloads
Length of output: 2385
Update the stale runtime image references in tests/trainer/utils/utils_runtimes.go.
The renamed th-torch-* image directories exist, but this file still maps runtimes to deleted th06-* image names. CWE-1104 (Cross-module Inconsistency).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@images/universal/training/README.md` around lines 36 - 43, Update the
runtime-to-image mappings in the relevant definitions in utils_runtimes.go to
use the renamed th-torch-cuda-py312, th-torch-rocm-py312, and th-torch-cpu-py312
image references instead of the deleted th06-* names, preserving the existing
CUDA, ROCm, and CPU runtime associations.
Source: Path instructions
| - CUDA: `th-torch-cuda-py<PYTHON_VERSION>/` | ||
| - ROCm: `th-torch-rocm-py<PYTHON_VERSION>/` | ||
| - CPU: `th-torch-cpu-py<PYTHON_VERSION>/` |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
Resolve the major-update naming conflict.
Scenario 2 requires a new directory for major CUDA, ROCm, PyTorch, or Training Hub updates. These names vary only by Python version. A major dependency update with Python 3.12 would reuse th-torch-*-py312/, so the workflow cannot preserve the previous GA image or support deterministic rollback.
Either add the relevant dependency version to the directory name, or change Scenario 2 to update the existing stable directory and define immutable image tags, digests, and rollback rules. Update ARCHITECTURE.md and downstream build references with the selected contract.
As per path instructions, architectural issues and bug-prone patterns are review priorities.
Possible documentation fix for stable directories
-**New folder required:**
+**Existing flavor directory update:**
...
-4. Create new directory following naming convention:
+4. Update the existing `th-torch-<flavor>-py<PYTHON_VERSION>/` directory in place.
+ Publish an immutable image tag or digest for each major dependency update.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@images/universal/training/README.md` around lines 166 - 168, Resolve the
Scenario 2 image-directory naming collision around the CUDA, ROCm, and CPU paths
in the training image documentation by including the relevant dependency version
in each directory name, or explicitly define the stable-directory update
contract with immutable tags, digests, and rollback rules. Update
ARCHITECTURE.md and all downstream build references to consistently use the
selected naming and rollback contract.
Source: Path instructions
|
/on-hold Will merge when new universal images are onboarded in Konflux |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: efazal, sutaakar The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Summary
th06-cpu-torch210-py312,th06-cuda130-torch210-py312,th06-rocm64-torch291-py312), which have been superseded by the new 3.5 GA images (th-torch-cpu-py312,th-torch-cuda-py312,th-torch-rocm-py312)README.mdandARCHITECTURE.mdto reflect the new simplified directory naming conventionTest plan
tests/trainer/utils/utils_runtimes.goruntime name mappings are updated separately when cluster-side runtimes are renamedMade with Cursor
Summary by CodeRabbit
Documentation
Bug Fixes
Chores